﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int i = 1;
	// 隐式类型转换

	// 隐式类型转换主要发⽣在整形和整形之间，整形和浮点数之间，浮点数和浮点数之间

	double d = i;
	printf("%d, %.2f\n", i, d);
	int* p = &i;
	// 显⽰的强制类型转换

	// 强制类型转换主要发⽣在指针和整形之间，指针和指针之间

	int address = (int)p;
	printf("%p, %d\n", p, address);
	// malloc返回值是void*，被强转成int*
	int* ptr = (int*)malloc(8);
	// 编译报错：类型强制转换:⽆法从“int* ”转换为“double”
	// 指针是地址的编号，也是⼀种整数，所以可以和整形互相转换

	// 但是指针和浮点数毫⽆关联，强转也是不⽀持的

	// d = (double)p;
	return 0;
}